The present application relates to computer operations implemented in hardware and particularly hardware that performs a population count.
Typically, computing systems use electronic circuitry that is referred to as arithmetic logic units (ALUs) to perform arithmetic operations. In addition to ALUs, high performance computing systems include additional special hardware that accelerates performance of specific arithmetic operations. For example, a computing system may include hardware devoted to performing multiplication, division, matrix operations, and other such specific arithmetic operations. In addition, computing systems include hardware and/or logic to perform a population count. A population count refers to counting the number of “1”s in a string of bits, or a vector. For example, the bit pattern “01111001” has a population count of 5. The population count of a string is useful for many applications, such as cryptographic analysis.